Defines a translational point mass element attached to a single node.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=real64), | public | :: | mass |
The mass. |
|||
| type(material), | public | :: | material |
The material. |
|||
| type(node), | public | :: | node_1 |
The node to which the mass is attached. |
Returns the constitutive matrix. A point mass does not deform; therefore, a zero-valued matrix is returned.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mass_element), | intent(in) | :: | this |
The mass_element object. |
The 1-by-1 zero-valued matrix.
Returns the element damping matrix. The default implementation returns a zero-valued matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
The N-by-N damping matrix, where N is the total number of element degrees of freedom.
Evaluates the i-th shape function. The single shape function of a point mass is unity.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mass_element), | intent(in) | :: | this |
The mass_element object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The index of the shape function to evaluate. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinate at which to evaluate the shape function. |
The value of the i-th shape function at s.
Returns the element external force vector. Discrete elements do not support distributed loads; therefore, a zero-valued vector is returned. Concentrated loads should be applied directly to the global force vector.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | q |
The distributed load vector. This argument is unused and is present for interface compatibility. |
|
| integer(kind=int32), | intent(in), | optional | :: | rule |
The integration rule. This argument is unused and is present for interface compatibility. |
The N-element force vector, where N is the total number of element degrees of freedom.
Defines the signature of a function performing a query on an integer-valued property of a element type.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
The resulting value.
Gets the number of degrees of freedom per node. This is equal to the element dimensionality as only translations are considered.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mass_element), | intent(in) | :: | this |
The mass_element object. |
The number of DOF per node.
Gets the requested node from the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mass_element), | intent(in) | :: | this |
The mass_element object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The local index of the node to retrieve. This value must be 1. |
The requested node.
Gets the number of nodes for the element.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mass_element), | intent(in) | :: | this |
The mass_element object. |
The number of nodes.
Returns the natural coordinate of the requested node. A single-node element has its node at s = 0; a two-node element has its nodes at s = -1 and s = 1, respectively.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
||
| integer(kind=int32), | intent(in) | :: | i |
The local index of the node. |
The natural coordinate of the node.
Returns the element Jacobian. Discrete elements have no spatial extent; therefore, a unit 1-by-1 Jacobian is returned.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinates at which to evaluate the Jacobian. This argument is unused and is present for interface compatibility. |
The 1-by-1 Jacobian matrix.
Computes the element mass matrix
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mass_element), | intent(in) | :: | this |
The mass_element object. |
||
| integer(kind=int32), | intent(in), | optional | :: | rule |
The integration rule. This argument is unused as the mass matrix is exact. |
The D-by-D mass matrix, where D is the element dimensionality.
Computes the displacement interpolation matrix, which is the D-by-D identity matrix, where D is the element dimensionality.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mass_element), | intent(in) | :: | this |
The mass_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinate at which to evaluate the matrix. |
The D-by-D shape function matrix.
Returns the element stiffness matrix. The default implementation returns a zero-valued matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(discrete_element), | intent(in) | :: | this |
The discrete_element object. |
||
| integer(kind=int32), | intent(in), | optional | :: | rule |
The integration rule. This argument is unused and is present for interface compatibility. |
The N-by-N stiffness matrix, where N is the total number of element degrees of freedom.
Computes the element strain at the specified natural coordinate. The strain is
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the element coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinates at which to evaluate the strain. |
The resulting strain vector.
Computes the strain-displacement matrix. A point mass does not deform; therefore, a zero-valued matrix is returned.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mass_element), | intent(in) | :: | this |
The mass_element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinate at which to evaluate the matrix. This argument is unused. |
The 1-by-D zero-valued matrix, where D is the element dimensionality.
Computes the element stress result at the specified natural coordinate. The stress result is
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(element), | intent(in) | :: | this |
The element object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | displacement |
The element displacement vector in the element coordinate system. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | s |
The natural coordinates at which to evaluate the stress. |
The resulting stress vector.